/* 
 * Fonctions javascript propres aux vues des opérations
 * 
 * 
 */


 //Fonctions relative aux controle grille	
    function createDistributionGrid() {
            var mygrid = new dhtmlXGridObject('distributiongridbox');
            mygrid.setImagePath(gridImgsPath);
            mygrid.setHeader("Dates de distribution");
            mygrid.setInitWidths("200")
            mygrid.setColAlign("center")
            mygrid.setColTypes("dhxCalendar");
            mygrid.enableResizing("false");
            mygrid.setColSorting("date")
            mygrid.setSkin("dhx_skyblue")
            mygrid.init();
            return mygrid;
    }

    function addRow(objGrid){
            var newId = (new Date()).valueOf();
            var position = objGrid.getRowsNum();
            objGrid.addRow(newId,"",position);
            objGrid.selectCell(position, 1);
            objGrid.editCell();
    }

    function deleteRow(objGrid) {
            var selectedId = objGrid.getSelectedRowId();

            if (selectedId !== null) {
                    objGrid.deleteRow(selectedId);
            }		
    }

    function beforeLoading() {
            //Evenement déclenchant un redimensionnement de la page               
            jQuery(window).resize(windowResize);
    }

    function afterLoading() {
            //calendrier pour la fin de souscription                             
            dhtmlXCalendarObject.prototype.langData["fr"] = {
                    dateformat: "%d/%m/%Y",
                    monthesFNames: ["janvier","février","mars","avril","mai","juin","juillet","aout","septembre","octobre","novembre","decembre"],
                    monthesSNames: ["jan","fev","mar","avr","mai","jun","jul","aou","sep","oct","nov","dec"],
                    daysFNames: ["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],
                    daysSNames: ["di","lu","ma","me","je","ve","sa"],
                    weekstart: 1,
                    weekname: "s"
            }
            dateFinSouscription = new dhtmlXCalendarObject(["txtDateFinSouscription"]);
            dateFinSouscription.loadUserLanguage('fr');
            
            dateCheque1 = new dhtmlXCalendarObject(["txtCheque1"]);
            dateCheque1.loadUserLanguage('fr');
            dateCheque2 = new dhtmlXCalendarObject(["txtCheque2"]);
            dateCheque2.loadUserLanguage('fr');
            ateCheque3 = new dhtmlXCalendarObject(["txtCheque3"]);
            dateCheque3.loadUserLanguage('fr');
    }

    //redimensionnement des elements de la page
    function windowResize() {
            var parentDiv = document.getElementById(parentDivId);
            var spreadsheetParentDiv = document.getElementById('paniersspreadsheetbox');
            var spreadsheetChildren = spreadsheetParentDiv.childNodes;
            for(var i=0; i<spreadsheetChildren.length; i++ )
            {
                    if (spreadsheetChildren[i].className.indexOf("dhx_toolbar") === 0 ) {
                            spreadsheetChildren[i].style.width = (parentDiv.offsetWidth - 58) + "px";
                    } else {
                            spreadsheetChildren[i].style.width = (parentDiv.offsetWidth - 50) + "px";
                    };
            }
    }	

function lstFamillesProduitsChange(lst)
    {
            /*
             * recherche les opérations existantes pour cette famille de produits
             * et les affiche dans la liste adjascente
             */

            //A faire

            /*
             * Affiche le code famille dans la zone de texte
             */
            var myIndex  = lst.selectedIndex;
            var myCode = lst.options[myIndex].value;
            document.getElementById('txtCodeFamilleProduit').value = myCode;

    }

    function creerOperation() {

        //message de confirmation
        var res = confirm("Voulez vous vraiment créer l'opération avc ces paramètres ?\n\nToute modification ultérieure devra se faire par un administrateur.");
        if (res === false) {
            return false;
        }
        
        //vérification des paramètres

        /*
         * - Une famille sélectionnée
         * - Un libellé
         * - Une date de fin > date de debut (dans le code)
         * - au moins une date de distribution
         * 
         */
        if (txtDateFinSouscription.value == '') {
            alert ('Une date de fin de souscription doit être saisie !');
            return false
        }
        
        if (distributionGrid.getRowsNum() == 0){
            alert ('Au moins une date de distribution doit être saisie !');
            return false
        }

        //Trie la grille des dates de distribution
        distributionGrid.sortRows(0);

        //collecte les données
        var params = {};
        params.idFamille = parseInt(lstFamillesProduits.options[lstFamillesProduits.selectedIndex].id);
        params.codeFamille = txtCodeFamilleProduit.value;
        params.moisDebut = lstMoisDebut.value;
        params.anneeDebut = lstAnneeDebut.value;
        params.moisFin = lstMoisFin.value;
        params.anneeFin = lstAnneeFin.value;
        params.dateFinSouscription = txtDateFinSouscription.value;
        params.libelleOperation = txtLibelleOperation.value;
        params.cheque1 = txtCheque1.value;
        params.cheque2 = txtCheque2.value;
        params.cheque3 = txtCheque3.value;

        //dates de distribution
        var datesDistribution = [];
        for (i = 0; i < distributionGrid.getRowsNum(); i++) {
            if (distributionGrid.cells2(i,0).getValue() != "") {
                datesDistribution[i] = distributionGrid.cells2(i,0).getValue();
            }
        }
        params.datesDistribution =  datesDistribution;

        //envoie les données au serveur via AJAX
        paramsURI = 'customaction=creeroperation&params=' + JSON.stringify(params);
        var loader = dhtmlxAjax.postSync(ajaxCallbackFunction,encodeURI(paramsURI));

        //Retour serveur
        if(loader.xmlDoc.responseXML!==null) {
            alert ("L'opération a bien été créée, vous allez être redirigé vers la liste des distributions.");
        } else {
            alert ("Erreur lors \n\n"+loader.xmlDoc.responseText);
        }

    }

    function finaliserOperation() {

        //message de confirmation
        var res = confirm("Voulez vous vraiment finaliser cette opération ?\n\nToute modification ultérieure devra se faire par un administrateur.");
        if (res === false) {
            return false;
        }
        
        var params = {};
        params.codeOperation = codeOperation;

        //envoie les données au serveur via AJAX
        paramsURI = 'customaction=finaliseroperation&params=' + JSON.stringify(params);
        var loader = dhtmlxAjax.postSync(ajaxCallbackFunction,encodeURI(paramsURI));

        //Retour serveur
        if(loader.xmlDoc.responseXML!==null) {
            alert ("L'opération a bien été finalisée, vous allez être redirigé vers la page d'accueil.");
        } else {
            alert ("Erreur lors \n\n"+loader.xmlDoc.responseText);
        }

    }